/**
 * @author dzmncvg
 *
 */
package vwg.na.vwm.rh.motorsdk.modelo.procesos.servicios;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatAreaDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatAreaGeneralDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatAreaGenericaDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatCiudadDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatCompaniaDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatEdoCivilDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatEstadoDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatEstudioDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatFormaTituloDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatIdiomaDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatEstatusEstudioDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatInstitucionDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatNacionalidadDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatNivelIdiomaDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatPaisDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatSexoDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.EssCatUbicacionDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatArea;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatAreaGeneral;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatAreaGenerica;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatCiudad;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatCompania;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatEdoCivil;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatEstado;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatEstudio;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatFormaTitulo;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatIdioma;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatEstatusEstudio;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatInstitucion;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatNacionalidad;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatNivelIdioma;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatPais;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatSexo;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.EssCatUbicacion;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.servicios.ifaces.ICatalogosServicio;

/**
 * @author dzmncvg
 * 
 */
@Service("catalogosServicio")
public class CatalogosServicio implements ICatalogosServicio {

	private static final long serialVersionUID = 7846773110269259291L;

	@Autowired
	private EssCatPaisDAO essCatPaisDAO;
	@Autowired
	private EssCatAreaGeneralDAO essCatAreaGeneralDAO;
	@Autowired
	private EssCatIdiomaDAO essCatIdiomaDAO;
	@Autowired
	private EssCatNivelIdiomaDAO essCatNivelIdiomaDAO;
	@Autowired
	private EssCatEstadoDAO essCatEstadoDAO;
	@Autowired
	private EssCatAreaGenericaDAO essCatAreaGenericaDAO;
	@Autowired
	private EssCatCompaniaDAO essCatCompaniaDAO;
	@Autowired
	private EssCatUbicacionDAO essCatUbicacionDAO;
	@Autowired
	private EssCatEstatusEstudioDAO essCatEstatusEstudioDAO;
	@Autowired
	private EssCatEstudioDAO essCatEstudioDAO;
	@Autowired
	private EssCatAreaDAO essCatAreaDAO;
	@Autowired
	private EssCatInstitucionDAO essCatInstitucionDAO;
	@Autowired
	private EssCatFormaTituloDAO essCatFormaTituloDAO;
	@Autowired
	private EssCatCiudadDAO essCatCiudadDAO;
	@Autowired
	private EssCatEdoCivilDAO essCatEdoCivilDAO;
	@Autowired
	private EssCatSexoDAO essCatSexoDAO;
	@Autowired
	private EssCatNacionalidadDAO essCatNacionalidadDAO;

	@Override
	public List<EssCatPais> getListaPaises() {
		return essCatPaisDAO.getAll(EssCatPais.class);
	}

	@Override
	public String getNombrePais(Integer idPais) {
		EssCatPais pais = essCatPaisDAO.findById(idPais);
		if (pais != null) {
			return pais.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatAreaGeneral> getListaAreaGeneral() {
		return essCatAreaGeneralDAO.getAll(EssCatAreaGeneral.class);
	}

	@Override
	public String getNombreAreaGeneral(Integer idAreaGeneral) {
		EssCatAreaGeneral areaGeneral = essCatAreaGeneralDAO
				.findById(idAreaGeneral);
		if (areaGeneral != null) {
			return areaGeneral.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatIdioma> getListaIdiomas() {
		return essCatIdiomaDAO.getAll(EssCatIdioma.class);
	}

	@Override
	public String getNombreIdioma(Integer idIdioma) {
		EssCatIdioma idioma = essCatIdiomaDAO.findById(idIdioma);
		if (idioma != null) {
			return idioma.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatNivelIdioma> getListaNivelIdiomas() {
		return essCatNivelIdiomaDAO.getAll(EssCatNivelIdioma.class);
	}

	@Override
	public String getNombreNivelIdioma(Integer idNivelIdioma) {
		EssCatNivelIdioma nivel = essCatNivelIdiomaDAO.findById(idNivelIdioma);
		if (nivel != null) {
			return nivel.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatEstado> getListaEstados() {
		return essCatEstadoDAO.getAll(EssCatEstado.class);
	}

	@Override
	public String getNombreEstado(Integer idEstado) {
		EssCatEstado estado = essCatEstadoDAO.findById(idEstado);
		if (estado != null) {
			return estado.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatAreaGenerica> getListaAreaGenerica() {
		return essCatAreaGenericaDAO.getAll(EssCatAreaGenerica.class);
	}

	@Override
	public String getNombreAreaGenerica(Integer idAreaGenerica) {
		EssCatAreaGenerica areaGenerica = essCatAreaGenericaDAO
				.findById(idAreaGenerica);
		if (areaGenerica != null) {
			return areaGenerica.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatCompania> getListaCompanias() {
		return essCatCompaniaDAO.getAll(EssCatCompania.class);
	}

	@Override
	public String getNombreCompania(Integer idCompania) {
		EssCatCompania compania = essCatCompaniaDAO.findById(idCompania);
		if (compania != null) {
			return compania.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatUbicacion> getListaUbicaciones() {
		return essCatUbicacionDAO.getAll(EssCatUbicacion.class);
	}

	@Override
	public String getNombreUbicacion(Integer idUbicacion) {
		EssCatUbicacion ubicacion = essCatUbicacionDAO.findById(idUbicacion);
		if (ubicacion != null) {
			return ubicacion.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatEstatusEstudio> getListaEstatusEstudio() {
		return essCatEstatusEstudioDAO.getAll(EssCatEstatusEstudio.class);
	}

	@Override
	public String getNombreEstatusEstudio(Integer idEstatusEstudio) {
		EssCatEstatusEstudio status = essCatEstatusEstudioDAO
				.findById(idEstatusEstudio);
		if (status != null) {
			return status.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatEstudio> getListaEstudios() {
		return essCatEstudioDAO.getAll(EssCatEstudio.class);
	}

	@Override
	public String getNombreEstudio(Integer idEstudio) {
		EssCatEstudio estudio = essCatEstudioDAO.findById(idEstudio);
		if (estudio != null) {
			return estudio.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatArea> getListaAreas() {
		return essCatAreaDAO.getAll(EssCatArea.class);
	}

	@Override
	public String getNombreArea(Integer idArea) {
		EssCatArea area = essCatAreaDAO.findById(idArea);
		if (area != null) {
			return area.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatInstitucion> getListaInstituciones() {
		return essCatInstitucionDAO.getAll(EssCatInstitucion.class);
	}

	@Override
	public String getNombreInstitucion(Integer idInstitucion) {
		EssCatInstitucion institucion = essCatInstitucionDAO
				.findById(idInstitucion);
		if (institucion != null) {
			return institucion.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatFormaTitulo> getListaFormaTitulo() {
		return essCatFormaTituloDAO.getAll(EssCatFormaTitulo.class);
	}

	@Override
	public String getNombreFormaTitulo(Integer idFormaTitulo) {
		EssCatFormaTitulo formaTitulo = essCatFormaTituloDAO
				.findById(idFormaTitulo);
		if (formaTitulo != null) {
			return formaTitulo.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatCiudad> getListaCiudades() {
		return essCatCiudadDAO.getAll(EssCatCiudad.class);
	}

	@Override
	public String getNombreCiudad(Integer idCiudad) {
		EssCatCiudad ciudad = essCatCiudadDAO.findById(idCiudad);
		if (ciudad != null) {
			return ciudad.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatEdoCivil> getListaEdoCivil() {
		return essCatEdoCivilDAO.getAll(EssCatEdoCivil.class);
	}

	@Override
	public String getNombreEdoCivil(Integer idEdoCivil) {
		EssCatEdoCivil edoCivil = essCatEdoCivilDAO.findById(idEdoCivil);
		if (edoCivil != null) {
			return edoCivil.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatSexo> getListaSexos() {
		return essCatSexoDAO.getAll(EssCatSexo.class);
	}

	@Override
	public String getNombreSexo(Integer idSexo) {
		EssCatSexo sexo = essCatSexoDAO.findById(idSexo);
		if (sexo != null) {
			return sexo.getNombre();
		} else {
			return null;
		}
	}

	@Override
	public List<EssCatNacionalidad> getListaNacionalidades() {
		return essCatNacionalidadDAO.getAll(EssCatNacionalidad.class);
	}

	@Override
	public String getNombreNacionalidad(Integer idNacionalidad) {
		EssCatNacionalidad nacionalidad = essCatNacionalidadDAO
				.findById(idNacionalidad);
		if (nacionalidad != null) {
			return nacionalidad.getNombre();
		} else {
			return null;
		}
	}
}
